/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package suministros.ejb30.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Luis_Angel
 */
@Entity
@Table(name = "costeo_diario")
@NamedQueries({
    @NamedQuery(name = "CosteoDiario.findAll", query = "SELECT c FROM CosteoDiario c order by c.fechaOrden desc"),
    @NamedQuery(name = "CosteoDiario.findByFecha", query = "SELECT c FROM CosteoDiario c WHERE c.fecha = :fecha"),
    @NamedQuery(name = "CosteoDiario.findBySemana", query = "SELECT c FROM CosteoDiario c WHERE c.semana = :semana"),
    @NamedQuery(name = "CosteoDiario.findByCantidad", query = "SELECT c FROM CosteoDiario c WHERE c.cantidad = :cantidad"),
    @NamedQuery(name = "CosteoDiario.findByMontoDolares", query = "SELECT c FROM CosteoDiario c WHERE c.montoDolares = :montoDolares"),
    @NamedQuery(name = "CosteoDiario.findByDescripcion", query = "SELECT c FROM CosteoDiario c WHERE c.descripcion = :descripcion"),
    @NamedQuery(name = "CosteoDiario.findByIdCosteoDiario", query = "SELECT c FROM CosteoDiario c WHERE c.idCosteoDiario = :idCosteoDiario")})
public class CosteoDiario implements Serializable {
    private static final long serialVersionUID = 1L;
    @Basic(optional = false)
    @Column(name = "fecha")
    private String fecha;
    @Basic(optional = false)
    @Column(name = "semana")
    private int semana;
    @Basic(optional = false)
    @Column(name = "cantidad")
    private BigDecimal cantidad;
    @Basic(optional = false)
    @Column(name = "monto_dolares")
    private BigDecimal montoDolares;
    @Column(name = "descripcion")
    private String descripcion;
    @Id
    @Basic(optional = false)
    @Column(name = "id_costeo_diario")
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long idCosteoDiario;
    @JoinColumn(name = "id_cuenta_contable", referencedColumnName = "id_cuenta_contable")
    @ManyToOne(optional = false)
    private CuentaContable idCuentaContable;
    @JoinColumn(name = "id_elemento_costo", referencedColumnName = "id_elemento_costo")
    @ManyToOne(optional = false)
    private ElementoCosto idElementoCosto;
    @JoinColumn(name = "id_movimiento", referencedColumnName = "id_movimiento")
    @ManyToOne
    private Movimiento idMovimiento;
    @JoinColumn(name = "cod_proveedor", referencedColumnName = "cod_proveedor")
    @ManyToOne(optional = false)
    private Proveedor codProveedor;
    @JoinColumn(name = "ID_Suministro", referencedColumnName = "ID_Suministro")
    @ManyToOne(optional = false)
    private Suministros idSuministro;
    @Column(name = "fecha_orden")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaOrden;

    public CosteoDiario() {
    }

    public CosteoDiario(Long idCosteoDiario) {
        this.idCosteoDiario = idCosteoDiario;
    }

    public CosteoDiario(Long idCosteoDiario, String fecha, int semana, BigDecimal cantidad, BigDecimal montoDolares) {
        this.idCosteoDiario = idCosteoDiario;
        this.fecha = fecha;
        this.semana = semana;
        this.cantidad = cantidad;
        this.montoDolares = montoDolares;
    }

    public String getFecha() {
        return fecha;
    }

    public void setFecha(String fecha) {
        this.fecha = fecha;
    }

    public Date getFechaOrden() {
        return fechaOrden;
    }

    public void setFechaOrden(Date fechaOrden) {
        this.fechaOrden = fechaOrden;
    }

    public int getSemana() {
        return semana;
    }

    public void setSemana(int semana) {
        this.semana = semana;
    }

    public BigDecimal getCantidad() {
        return cantidad;
    }

    public void setCantidad(BigDecimal cantidad) {
        this.cantidad = cantidad;
    }

    public BigDecimal getMontoDolares() {
        return montoDolares;
    }

    public void setMontoDolares(BigDecimal montoDolares) {
        this.montoDolares = montoDolares;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public Long getIdCosteoDiario() {
        return idCosteoDiario;
    }

    public void setIdCosteoDiario(Long idCosteoDiario) {
        this.idCosteoDiario = idCosteoDiario;
    }

    public CuentaContable getIdCuentaContable() {
        return idCuentaContable;
    }

    public void setIdCuentaContable(CuentaContable idCuentaContable) {
        this.idCuentaContable = idCuentaContable;
    }

    public ElementoCosto getIdElementoCosto() {
        return idElementoCosto;
    }

    public void setIdElementoCosto(ElementoCosto idElementoCosto) {
        this.idElementoCosto = idElementoCosto;
    }

    public Movimiento getIdMovimiento() {
        return idMovimiento;
    }

    public void setIdMovimiento(Movimiento idMovimiento) {
        this.idMovimiento = idMovimiento;
    }

    public Proveedor getCodProveedor() {
        return codProveedor;
    }

    public void setCodProveedor(Proveedor codProveedor) {
        this.codProveedor = codProveedor;
    }

    public Suministros getIdSuministro() {
        return idSuministro;
    }

    public void setIdSuministro(Suministros idSuministro) {
        this.idSuministro = idSuministro;
    }

   
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idCosteoDiario != null ? idCosteoDiario.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CosteoDiario)) {
            return false;
        }
        CosteoDiario other = (CosteoDiario) object;
        if ((this.idCosteoDiario == null && other.idCosteoDiario != null) || (this.idCosteoDiario != null && !this.idCosteoDiario.equals(other.idCosteoDiario))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "suministros.ejb30.entity.CosteoDiario[idCosteoDiario=" + idCosteoDiario + "]";
    }

}
